const BASE_URL = 'https://super.hya365.com/api';

// HTTP 请求封装
export const http = (options) => {
	return new Promise((resolve, reject) => {
		// 显示加载动画（可选）
		if (options.showLoading) {
			uni.showLoading({
				title: options.loadingText || '加载中...',
				mask: true, // 防止触摸穿透
			});
		}

		uni.request({
			url: (options.baseURL || BASE_URL) + options.url, // 支持动态 baseURL
			method: options.method || 'GET', // 默认 GET 请求
			data: options.data || {}, // 请求参数
			header: options.header || {
				'Content-Type': 'application/json', // 默认 JSON
				...options.customHeader, // 支持自定义 Header
			},
			timeout: options.timeout || 60000, // 超时时间，默认 60 秒
			success: (res) => {
				// 隐藏加载动画
				if (options.showLoading) {
					uni.hideLoading();
				}

				// 判断接口返回是否成功
				if (res.data.status === 1) {
					resolve(res.data); // 返回接口数据
				} else {

					uni.showToast({
						title: res.data.msg || '请求失败',
						icon: 'none',
						duration: 2000, // 提示持续时间
						success: () => {
							if (options.onToastClose) {
								options.onToastClose(); // 自定义回调
							}
						},
					});
					reject(res.data);
				}
			},
			fail: (err) => {
				// 隐藏加载动画
				if (options.showLoading) {
					uni.hideLoading();
				}

				// 网络错误提示
				uni.showToast({
					title: options.failMsg || '网络异常，请稍后再试',
					icon: 'none',
					duration: 2000,
					success: () => {
						if (options.onToastClose) {
							options.onToastClose();
						}
					},
				});

				// 将错误对象传递出去
				reject(err);
			},
			complete: () => {
				// 请求完成后的回调（无论成功或失败）
				if (typeof options.onComplete === 'function') {
					options.onComplete();
				}
			},
		});
	});
};